<template>
  <view class="channel-coupon">
    <view class="details">
      <swiper class="swiper" :indicator-dots="true" :autoplay="true">
        <swiper-item v-for="(imgItem, index) in channelCouponData.productImageList" :key="index">
          <image class="swiper-img" :src='imgItem'></image>
        </swiper-item>
      </swiper>
      <view class="info">
        <view class="price-box">
          <view class="icon">
            <img class="icon-img" src="https://ceres.zkthink.com/static/img/channelCoupon/icon-coupon.png" alt="" mode="widthFix"/>
          </view>
          <label class="price">¥{{channelCouponData.price}}</label>
          <label class="original-price">¥{{channelCouponData.originalPrice}}</label>
          <label class="buy-count">{{channelCouponData.buyUserCount}}人付款</label>
        </view>
        <text class="name" @click="jumpProductDetail(channelCouponData)">{{channelCouponData.productName}}</text>
      </view>
      <view class="coupon">
        <view class="price">
          <text class="unit" v-if="channelCouponData.couponType === 1">¥</text>
          <text class="val">{{channelCouponData.reduceMoney}}</text>
          <text class="unit" v-if="channelCouponData.couponType === 2">折</text>
        </view>
        <view class="coupon-content">
          <view class="time">
            <text class="text">有效期</text>
            <text class="val">{{channelCouponData.startTime.slice(0,10)}} - {{channelCouponData.endTime.slice(0,10)}}</text>
          </view>
          <view v-if="channelCouponData.state === 3" class="btn" @click="receiveCoupon(channelCouponData)">立即领取</view>
          <view v-if="channelCouponData.state === 0" class="btn">已领取</view>
          <view v-if="channelCouponData.state === 1" class="btn">已使用</view>
          <view v-if="channelCouponData.state === 2" class="btn">已过期</view>
        </view>
      </view>
    </view>
    <div class="pro-list" v-if="productList && productList.length > 0">
      <div class="title">
        <img class="title-img" src="https://ceres.zkthink.com/static/img/channelCoupon/img-title.png" alt="商品推荐" mode="widthFix"/>
      </div>
      <div class="product-list">
        <div class="product-list-box" >
          <div class="product-list-item-warp" v-for="(item,index) in productList" :key="index" @click="jumpProductDetail(item)">
            <div class="product-list-item">
              <div class="product-list-img">
                <img v-show="item.image" class="img" :src="item.image">
              </div>
              <div class="product-list-info">
                <label class="product-name">{{item.productName}}</label>
                <div class="flex">
                  <div class="shop-box" @click.stop="jumpStore(item)">
                    <label class="shop-name">{{item.shopName}}</label>
                    <div class="shop-logo">
                      <img :src="item.shopLogo">
                    </div>
                  </div>
                  <label class="buy-count">{{item.users?item.users: 0}}人付款</label>
                </div>
                <div class="price-warp">
                  <img class="iconImg" v-if="item.activityType == 1" src="https://ceres.zkthink.com/static/images/groupBuyIcon.png">
                  <img class="iconImg" v-if="item.activityType == 2" src="https://ceres.zkthink.com/static/images/spikeIcon.png">
                  <img class="iconImg" v-if="item.activityType == 4" src="https://ceres.zkthink.com/static/images/spikeIcon.png">
                  <img class="iconImg" v-if="item.activityType == 3" src="https://ceres.zkthink.com/static/images/discountListIcon.png">
                  <img class="iconImg" v-if="item.activityType == 5" src="https://ceres.zkthink.com/static/images/discountListIcon.png">
                  <img class="iconImg" v-if="item.activityType == 8" src="https://ceres.zkthink.com/static/images/memberCenterIcon.png">
                  <div class="price">
                    ¥ {{item.price}}
                  </div>
                  <div class="original-price">
                    ¥ {{item.originalPrice}}
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </view>
</template>

<script>
const NET = require('../../utils/request')
const API = require('../../config/api')
export default {
  name: "channelCoupon",
  data() {
    return {
      channelCouponData:{},
      productList:[],
      isLogin: false,
      params:{
        productId: 0,
        shopCouponId: 0,
        shopId: 0
      }
    }
  },
  onLoad(options) {
    console.log(options,'options')
    this.params.productId = options.productId
    this.params.shopCouponId = options.shopCouponId
    this.params.shopId = options.shopId
    const res = uni.getStorageSync('storage_key'),token = res.token;
    this.isLogin = !!token
    this.getChannelCoupon()
    this.getProductList()
  },
  methods:{
    // 获取渠道优惠券
    getChannelCoupon(){
      uni.showLoading({
        mask: true,
        title: '加载中...'
      })
      NET.request(API.getChannelCoupon, this.params, 'GET').then(res => {
        this.channelCouponData = res.data
        uni.hideLoading()
      }).catch(res => {
        uni.hideLoading()
        uni.showToast({
          title: '失败',
          icon: "none"
        })
      })
    },
    // 获取推荐产品
    getProductList(){
      uni.showLoading({
        mask: true,
        title: '加载中...'
      })
      var params ={
        page: 1,
        pageSize: 10,
        timestamp: new Date().getTime()
      }
      NET.request(API.getRandomProduct, params, 'GET').then(res => {
        this.productList = res.data.list
        uni.hideLoading()
      }).catch(res => {
        uni.hideLoading()
      })
    },
    // 领取优惠券
    receiveCoupon(item) {
      if (this.isLogin) {
        var paramsData = {
          shopCouponId: item.shopCouponId,
          shopId: this.params.shopId
        }
        NET.request(API.ReceiveCoupon, paramsData, 'POST').then(res => {
          uni.showToast({
            title:'领取成功',
            icon:"success"
          })
		  let data = {
			  shopId:this.channelCouponData.shopId,
			  productId:this.channelCouponData.productId,
			  skuId:this.channelCouponData.skuId,
		  }
		  setTimeout(()=>{
			  this.jumpProductDetail(data)
		  },2000)
        }).catch(res => {
          if(res.data.code !== '200'){
            uni.showToast({
              title:res.data.message,
              icon:"none"
            })
          }
        })
      } else {
        uni.showToast({
          title:'请先登录',
          icon:"none"
        })
        uni.navigateTo({
          url:'/pages_category_page2/userModule/login'
        })
      }
    },
    // 跳转到店铺主页
    jumpStore(item){
      uni.navigateTo({
        url: `/pages_category_page1/store/index?storeId=${item.shopId}`
      })
    },
    // 跳转到商品详情
    jumpProductDetail(item){
      uni.navigateTo({
        url: '/pages_category_page1/goodsModule/goodsDetails?shopId=' + item.shopId + '&productId=' + item.productId + '&skuId=' + item
            .skuId
      })
    },
  }
}
</script>

<style lang="scss" scoped>
.channel-coupon{
  .details{
    background-color: #fff;
    padding-bottom: 48rpx;
    .swiper{
      height: 750rpx;
      &-img{
        width: 100%;
        height: 100%;
      }
    }
    .info{
      padding: 0 20rpx;
      margin-top: 20rpx;
      .price-box{
        display: flex;
        align-items: center;
        position: relative;
        .icon{
          padding-right: 8rpx;
          width: 66rpx;
          height: 46rpx;
          &-img{
            width: 100%;
            height: 100%;
          }
        }
        .price{
          color: #C83732;
          font-weight: bold;
          font-size: 60rpx;
          margin-right: 10rpx;
        }
        .original-price{
          padding-top: 20rpx;
          font-size: 24px;
          color: #CCCCCC;
          text-decoration:line-through;
        }
        .buy-count{
          position: absolute;
          right: 0;
          font-size: 26rpx;
          color: #CCCCCC;
        }
      }
      .name{
        margin-top: 20rpx;
        font-size: 32rpx;
        line-height: 48rpx;
        color: #333333;
      }
    }
    .coupon{
      margin: 32rpx 20rpx;
      height: 140rpx;
      background: #333333 url("https://ceres.zkthink.com/static/img/channelCoupon/border-coupon.png") no-repeat right center / auto 140rpx;
      display: flex;
      .price{
        position: relative;
        width: 204rpx;
        display: flex;
        justify-content: center;
        align-items: baseline;
        height: 100%;
        border-right: 2rpx solid #666666;
        line-height: 140rpx;
        .unit{
          font-size: 36rpx;
          color: #FFEBC4;
        }
        .val{
          font-size: 70rpx;
          color: #FFEBC4;
        }
        &:before,&:after{
          content: '';
          width: 24rpx;
          height: 24rpx;
          background: #fff;
          border-radius: 50%;
          position: absolute;
          right: -12rpx;
        }
        &:before{
          top: -12rpx;
        }
        &:after{
          bottom: -12rpx;
        }
      }
      &-content{
        flex: 1;
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 50rpx;
        .time{
          .text{
            font-size: 32rpx;
            color: #FFFFFF;
            line-height: 44rpx;
            display: block;
          }
          .val{
            font-size: 20rpx;
            color: #999999;
            line-height: 28rpx;
          }
        }
        .btn{
          width: 122rpx;
          height: 52rpx;
          line-height: 52rpx;
          border: 2rpx solid #999999;
          font-size: 24rpx;
          text-align: center;
          color: #FFFFFF;
        }
      }
    }
  }
}
.pro-list{
  background: #F8F8F8;
  padding: 42upx 13upx 20upx;
  .title{
    text-align: center;
    margin-bottom: 36upx;
    .title-img{
      width: 211upx;
    }
  }
  /**多行多列**/
  .product-list {
    position: relative;
    &-box {
      display: flex;
      flex-wrap: wrap;
      flex-direction: row;
      &.swiper{
        height: 620upx;
      }
    }
    &.product-swiper .product-list-box{
      padding-left: 0;
    }
    &-item-warp{
      margin: 0 0 20upx 0;
    }
    &-item {
      width: 348upx;
      padding: 0 7upx;
      box-sizing: content-box;
    }
    &-img {
      width: 348upx;
      height: 348upx;
      background-color: #f5f5f5;
      border-radius: 10upx 10upx 0 0;
      .img {
        width: 100%;
        height: 100%;
        object-fit: contain;
      }
    }
    &-info {
      background-color: #FFFFFF;
      //box-shadow: 0px 0px 15px 0px rgba(52, 52, 52, 0.15);
      border-radius: 0 0 10upx 10upx;
      padding: 20upx;
      label{
        font-weight: normal;
      }
      .product-name{
        font-size: 28upx;
        color: #333;
        display: block;
        overflow: hidden;
        text-overflow:ellipsis;
        white-space: nowrap;
        margin-bottom: 18upx;
        line-height: 40upx;
      }
      .flex{
        display: flex;
        align-items: center;
      }
      .shop-box{
        background-color: #333333;
        border-radius: 0upx 20upx 20upx 0upx;
        line-height: 40upx;
        display: flex;
        align-items: center;
        height: 40upx;
        margin-right: 10upx;
        .shop-name{
          font-size: 20upx;
          color: #FFEBC4;
          padding: 0 8upx 0 12upx;
        }
        .shop-logo{
          border: 2upx solid #707070;
          border-radius: 50%;
          overflow: hidden;
          float: right;
          img{
            width: 34upx;
            height: 34upx;
            display: block;
          }
        }
      }
      .buy-count{
        color: #EFB257;
        font-size: 20upx;
        border: 2upx solid #E4E5E6;
        line-height: 40upx;
        padding: 0 5upx;
      }
      .price-warp{
        display: flex;
        align-items: baseline;
        line-height: 56upx;
        .iconImg {
          width: 58rpx;
          height: 36rpx;
          margin-right: 10rpx;
        }
        .price{
          color: #C83732;
          font-size: 40upx;
          margin-right: 20upx;
        }
        .original-price{
          font-size: 24upx;
          color: #ccc;
          text-decoration: line-through;
        }
      }
    }
  }
}

.swiper-dots {
  display: flex;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 15rpx;
  z-index: 66;
  .dot {
    width: 10upx;
    height: 10upx;
    background: #333333;
    opacity: 0.3;
    border-radius: 5upx;
    margin: 0 10upx;
  }

  .dot-active {
    width: 20upx;
    opacity: 1;
  }
}
</style>
